#include <iostream>

class A {
public:
    int x;
    A(int x = 10){
        this->x = x;
    }//默认的构造函数
};

class B {
public:
    int x;
    explicit B(int x = 0){
        this->x = x;
    }
    // explicit关键字只能修饰构造函数，且修饰的构造函数只能有一个！！！
};


int main()
{
    using namespace std;
    A a = 20;  //属于隐式的调用
    cout << a.x << endl;
    /*
        explicit关键字防止类对象隐式的调用，加了关键后必须要显式的调用

    */
    //B b = 20;  //错误的调用方式

    return 0;
}
// 总结建议：如果构造函数只有一个参数，极力建议添加explicit关键字，